package com.cencat.common.annotation;

import java.lang.annotation.*;

/**
 * 日志记录注解
 * 标记在方法上，自动记录方法执行日志
 * 
 * @author cencat
 * @since 2024-01-01
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log {
    
    /**
     * 操作描述
     * @return 操作描述
     */
    String value() default "";
    
    /**
     * 操作类型
     * @return 操作类型
     */
    String type() default "";
    
    /**
     * 是否记录参数
     * @return true-记录参数，false-不记录参数
     */
    boolean recordParams() default true;
    
    /**
     * 是否记录返回值
     * @return true-记录返回值，false-不记录返回值
     */
    boolean recordResult() default true;
    
    /**
     * 是否记录执行时间
     * @return true-记录执行时间，false-不记录执行时间
     */
    boolean recordTime() default true;
}